The invention pertains to the field of performance enhancing devices for CD-ROM devices and other slow access memory devices.
CD-ROM devices, and other devices like magneto-optical disk drives and tape drives are notoriously slow in accessing data. For example, in so called 1X CD-ROM devices typical access times are 390 milliseconds (hereafter msec) and data transfer rates are typically 150 kilobytes/second (hereafter KB/sec). Even so called 2X CD-ROM drives are not much faster, averaging 200-290 msec access times and 300 KB/sec transfer rates, and 4X devices average 190 msec access time and 600 KB/sec transfer rates.
In an attempt to alleviate this problem, manufacturers of CD-ROM devices have been incorporating random access memory into their devices to help speed up access.
The random access memory is managed as a cache. Typical cache sizes of up to 256 kilobytes of random access memory have been used. The problem with this approach is that the capacity for data storage in CD-ROM devices is so huge, that a 256 kilobyte (hereafter KB) cache does not significantly speed up access. For example, typical data transfer rates for a 1X CD-ROM with a 256 KB cache are only speeded up to 170-180 KB/sec and 4X device have their data transfer rates speeded up to only 700 KB/sec.
In another approach to solving this problem, some manufacturers such as Insignia Software Solutions, with its RapidCD software product, have introduced drivers for CD ROM devices which use the hard disk and RAM of the host computer as look-ahead cache memory. Another example of this type of product is the CD-ROM Toolkit by FWB Software, Inc. The problem with this approach (which will be called the software cache approach herein) is that using part of the host hard disk and RAM for cache purposes for the CD-ROM device lowers the capacity of the host hard disk and RAM for other purposes such as storing application programs and data. In many cases, especially where a multitasking environment is in effect such as in Windows and Macintosh environments, the remaining space on the host hard disk and RAM is insufficient to support all necessary operations. Further, although a program may initially run, it may ultimately crash as more demands on the host RAM and hard disk for storage are made. This can lead to loss of whatever data is currently displayed which has not yet been saved to hard disk.
The software cache approach also requires that the host CPU be used to manage the cache such as reading the least recently used table, storing data into the cache, intercepting read requests and examining the cache map and extracting data from the software cache or from the CD-ROM as appropriate.
The software cache approach also utilizes the file operating system of the host. Typically, such operating system functions require a fairly large amount of overhead even for a simple data transfer.
Also, software cache operation is not universally compatible with all operating systems and hardware platforms.
The software cache approach is also not terribly efficient, because to store data in the host hard disk cache area, the data is first transferred from the CD-ROM into the host RAM, and from there into the host hard disk cache area. This two step process involves overhead for each of the two storage transactions and ties up the host CPU, the host RAM and the host hard disk thereby precluding these assets from being used for other multitasking purposes during the transactions.
Accordingly, a need has arisen for a method and apparatus to vastly speed up access times and data transfer rates for slow access time rotating media bulk storage memory devices which solves the above noted problems and is completely transparent to the host computer.